The typical distributed computer system includes multiple interconnected nodes, connection devices, and a connection medium. One common example of a distributed computer system is the Internet. Through the Internet, nodes in one region of the world are able to communicate with nodes in a different region.
The interconnection of nodes in a distributed computer system provides a mechanism for a client to use the processing power and environment that is not available locally. Specifically, a client can submit a job to a collection of processors that are remotely located. A job is a request for the collection of processors to process instructions.
For example, consider the example of forecasting weather patterns. In order to forecast weather patterns, meteorological researchers may create weather modeling programs on a local computer. Typically, the researcher also collects data from satellites, electronic data collection stations, planes, etc. Using the collected data, the researcher populates a series of data files on a local computer. Once the data files are populated, the researcher may access the Internet through a web browser, or access an ftp server. Using the web browser or ftp server, the researcher sends the weather modeling program and the series of data files to a collection of processors. The researcher then requests that the weather modeling program is executed by clicking the submit button or typing the correct command. After the execution of the program by the remote collection of processors, the researcher may obtain the results by copying a file that contains the results to the local computer and opening the file.
Processing a job typically requires payment from the client. Specifically, each job typically has a price associated with the job. In order to submit the job, the client must pay or promise to pay the price. The price may be set, for example, as a constant. Specifically, regardless of the promised performance characteristics for executing the job, the price of executing the job may be solely dependent on the amount of time to execute the job.
Returning to the above weather pattern example, the constant price may be set as five dollars per hour per processor. Accordingly, if the weather forecasting job requires six processors executing for eight hours, then the cost is two hundred and forty dollars. After calculating the potential cost, the researcher may decide whether to pay the price to execute the job remotely.